package rmi;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.List;

import service.ServiciosProducto;
import service.ServiciosProveedor;
import service.SistemaCVR;

import bean.vo.ParametrosVO;
import bean.vo.ProductoVO;
import bean.vo.ProveedorVO;

//Objeto a publicar para la casa central
@SuppressWarnings("serial")
public class CasaCentralRemote extends UnicastRemoteObject implements CasaCentralInterfaz{

	protected CasaCentralRemote() throws RemoteException {
		super();
	}

	public void altaProveedor(ProveedorVO prov) throws RemoteException {
		try {
			ServiciosProveedor.crearProveedor(prov);
		} catch (Exception e) {
			throw new RemoteException(e.getMessage());
		}
	}

	public void bajaProveedor(ProveedorVO prov) throws RemoteException {
		try {
			ServiciosProveedor.eliminarProveedor(prov);
		} catch (Exception e) {
			throw new RemoteException(e.getMessage());
		}
	}

	public void modificacionProveedor(ProveedorVO prov) throws RemoteException {
		try {
			ServiciosProveedor.modificarProveedor(prov);
		} catch (Exception e) {
			throw new RemoteException(e.getMessage());
		}
	}

	public ProveedorVO getProveedor(ProveedorVO prov) throws RemoteException {
		try {
			return ServiciosProveedor.buscarProveedor(prov);
		} catch (Exception e) {
			throw new RemoteException(e.getMessage());
		}
	}

	public List<ProveedorVO> getProveedores() throws RemoteException {
		try {
			return ServiciosProveedor.getProveedores();
		} catch (Exception e) {
			throw new RemoteException(e.getMessage());
		}
	}
	
	public List<ProductoVO> getProductos() throws RemoteException {
		try {
			return ServiciosProducto.getProductos();
		} catch (Exception e) {
			throw new RemoteException(e.getMessage());
		}
	}
	
	public void modificarProducto(ProductoVO producto) throws RemoteException {
		try {
			ServiciosProducto.modificarProducto(producto);
		} catch (Exception e) {
			throw new RemoteException(e.getMessage());
		}
	}
	
	public ParametrosVO getParametros() throws RemoteException {
		try {
			return SistemaCVR.getParametros();
		} catch (Exception e) {
			throw new RemoteException(e.getMessage());
		}
	}
	
	public void setParametros(ParametrosVO params) throws RemoteException {
		try {
			SistemaCVR.setParametros(params);
		} catch (Exception e) {
			throw new RemoteException(e.getMessage());
		}
	}

}
